//
//  ViewController.swift
//  CellAlternateBackgroundColor
//
//  Created by 李煜 on 2024/4/24.
//https://blog.csdn.net/pigkiss/article/details/8542569

import UIKit

class ViewController: UITableViewController {
    let cellID: String = "cell"
    override func viewDidLoad() {
        super.viewDidLoad()
        
    }

    override func numberOfSections(in tableView: UITableView) -> Int {
        3
    }
    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        4
    }
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: cellID)!
        
        cell.textLabel?.text = "\(indexPath.row)"
        return cell;
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    }
    
    override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        let realRow = realRowNumer(for: indexPath, tableView: tableView)
        cell.backgroundColor = realRow % 2 == 0 ? .lightGray : .gray
    }
    
    // MARK: 返回某一行在tableView中的行号
    private func realRowNumer(for indexPath: IndexPath, tableView: UITableView) -> Int {
        var relInt = 0
        if (indexPath.section == 0) { return indexPath.row}
        
        for i in 0..<indexPath.section {
            relInt += tableView.numberOfRows(inSection: i)
        }
        return relInt + indexPath.row
    }
}

